クリップボード管理ツールClipMenuでChatWorkのタグを簡単に入力する
はじめに
こんにちは植木和樹です。クラスメソッドでは社内のコミュニケーションにChatWorkを使っています。そんなChatWorkに先日(1/19)待望の新機能が提供されました!
codeタグがリリースされてからは毎日使っています!とても便利!! またChatWorkではcodeタグ以外にも便利なタグがたくさんあります。
とても便利なタグ機能。ただ問題が1つ。いつも貼り付けたいコードをコピーしてきてから「あ、これ code タグで囲みたいんだった」と思い出すことが多い点です。その度にスニペット集からChatworkの修飾タグをコピーして貼り付けているのですが、そうするとせっかくコピーしたクリップボード上のコード文字列が上書きされてしまい、再度コピーし直さないといけません。
そんな時に便利なのがクリップボード管理ツールです。私は「ClipMenu」というツールを使っています。
ClipMenuにはJavaScriptを使って、クリップボード内の文字列を操作する「アクション」という機能があります。今回はアクション機能を使ってクリップボードの文字列をChatWorkタグで囲む機能を追加してみたいと思います。
ClipMenuで文字列をChatWorkタグで囲む
ユーザースクリプトを作成する
まずはライブラリディレクトリにユーザースクリプトを作成します。通常このディレクトリは存在しないので、まず作りましょう。さらにChatWorkというサブディレクトリを作ります。ChatWork関係のスクリプトはこのディレクトリ下にまとめておくことにします。
$ mkdir -p ~/Library/Application\ Support/ClipMenu/script/action $ cd !$ $ mkdir -p chatwork $ cd !$ $ pwd /Users/uekikazuki/Library/Application Support/ClipMenu/script/action/chatwork
それではユーザスクリプトファイルを作成します。ファイル名はcode.jsとして、[ code ]〜[ /code ]でクリップボードの文字列を囲んでみましょう。
code.js
return '';
クリップボードの文字列がclipTextという変数に入っていますので、単純に文字列連結しているだけです。
ClipMenuでアクションを設定する
スクリプトファイルを作成したら、次にClipMenuに登録します。(※ClipMenuを起動していた場合は、作成したスクリプトファイルを読み込ませるために、一度ClipMenuを再起動してください)
ClipMenuの「環境設定」画面を開きます。「アクション」を選択し、登録したユーザースクリプトをアクションメニューに追加します。
スクリプトの設定はこれだけです。
試してみる
それでは作成したユーザースクリプトを使って、クリップボードの文字列を修飾してみましょう。
まずはクリップボード履歴を開きます。次に操作したい文字列をControlキーを押しながらクリックします。キーボード派の人はControl+returnでもOKです。
次に、先ほどアクションメニューに追加したcodeをクリック(またはreturn)します。
すると下記のように修飾されたテキストが張り付きます。
これでクリップボードにコピーした後でもタグで囲めるようになりました!
[ info ][ /info ]タグも登録してみる
追加スクリプトとして、先ほどのcode.jsファイルをinfo.jsという名前でコピーし、[ info ]〜[ /info ]で囲むよう修正してみましょう。
code.js
return '[info]' + "\n" + clipText + "\n" + '[/info]';
一度ClipMenuを再起動してスクリプトを再読み込みさせてから、先ほどと同じ手順でアクションメニューに追加すれば[ info ]タグでも修飾できるようになります。
細かい注意点
上の手順でも書きましたが、スクリプトを追加するにあたりいくつか注意点があります。
- ユーザースクリプトファイルを作ったらClipeMenuの再起動が必要です。
- ライブラリのchatworkディレクトリ下に新しいスクリプトファイルを追加しても自動読み込みしてくれません。ClipMenuの再起動が必要でした。
- 登録済みのスクリプトの内容を変更した場合、ClipMenuの再起動は不要です。自動的に再読み込みされます。
その他、カスタムアクションについて詳しいことはマニュアルを参照してください。
まとめ
ClipMenuを使うことで、貼り付けたい文字列をコピーしてきてから「あ、これタグで囲みたいな」と思った時でも、やり直すことなく文字列を修飾できるようになりました。今回はChatWorkのタグで囲みましたがブログでよく使うタグなんかを登録しておくのも便利ですね。
text_gutter-false.js
return '<pre>[ text gutter="false" ]' + "\n" + clipText + "\n" + '[ /text ]</pre>';
こんなスクリプトも便利だよ、というのがあればぜひ教えてください!